package com.zmn.oms.zmn.facade.interfaces.open.v2;

import com.zmn.oms.common.dto.ResultDTO;
import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.dto.entrust.SyncEntrustOrderStatusDTO;
import com.zmn.oms.model.dto.open.v2.PushDutyTimeDTO;
import com.zmn.oms.model.dto.open.v2.PushMasterInfoDTO;
import com.zmn.oms.model.dto.open.v2.PushOrderCompleteDTO;
import com.zmn.oms.model.dto.open.v2.PushOrderDTO;

/**
 * 类描述：第二版接收订单（目前主要针对委托单）状态同步的业务逻辑组织器
 *
 * @author lhl
 * @date 2020/01/06 19:04
 */
public interface V2OrderStatusAcceptFacade {

    /**
     * 同步预约时间
     * @param pushDutyTimeDTO
     */
    ResultDTO<SyncEntrustOrderStatusDTO> acceptDutyTime(PushDutyTimeDTO pushDutyTimeDTO) throws OmsBaseException;

    /**
     * 同步接单工程师信息
     * @param pushMasterInfoDTO
     */
    ResultDTO<SyncEntrustOrderStatusDTO> acceptMasterInfo(PushMasterInfoDTO pushMasterInfoDTO) throws OmsBaseException;

    /**
     * 同步工程师上门
     * @param pushOrderDTO
     * @return
     */
    ResultDTO<SyncEntrustOrderStatusDTO> acceptMasterVisit(PushOrderDTO pushOrderDTO) throws OmsBaseException;

    /**
     * 同步订单状态为完成
     * @param pushOrderCompleteDTO
     */
    ResultDTO<SyncEntrustOrderStatusDTO> acceptOrderComplete(PushOrderCompleteDTO pushOrderCompleteDTO) throws OmsBaseException;

    /**
     * 同步订单状态为取消
     * @param pushOrderDTO
     */
    ResultDTO<SyncEntrustOrderStatusDTO> acceptOrderCancel(PushOrderDTO pushOrderDTO) throws OmsBaseException;
}
